package com.hymjweb.demo.framework.util;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexUtil {
    
    /**
     * 取满足分组条件里的一个值
     * @param content   正文
     * @param regex     分组条件表达式
     * @return 
     * @author tsl
     * @serialData 2018年7月7日
     */
    public static String getValueByRegex(String content, String regex) {
        List<String> list = getListByRegex(content, regex);
        if (list == null || list.size() <= 0)
            return null;
        return list.get(0);
    }

    /**
     * 取满足分组条件所有值
     * @param content   正文
     * @param regex     分组条件表达式
     * @return 
     * @author tsl
     * @serialData 2018年7月7日
     */
    public static String[] getArrByRegex(String content, String regex) {
        List<String> list = getListByRegex(content, regex);
        if (list == null || list.size() <= 0)
            return null;
        return list.toArray(new String[0]);
    }

    public static List<String> getListByRegex(String content, String regex) {
        Pattern p = Pattern.compile(regex);
        Matcher m = p.matcher(content);
        List<String> list = new ArrayList<String>();
        while (m.find()) {
            list.add(m.group(1));
        }
        return list;
    }

    public static void main(String[] args) {
        String str = "lkjhgf<a herf=\" fdsdadf, \" title = \"韩国和规范\">yfffgfg<a herf=\"gfytffjhhjg\" title=\"预付费更改\">iuiuyuytf<a herf=\"fhgytfddtr\" title=\"了解客户感觉\">uigfg";
        Pattern p = Pattern.compile("title\\s*=\\s*\"(.+?)\"");
        Matcher m = p.matcher(str);
        while (m.find()) {
            System.out.println(m.group(1));
        }
        
        String dataOptions = "{cacheName:\"xt_dic\"}";
        String regex = "cacheName\\s*\\:\\s*\"(.+?)\"";
        String cacheName = DataTypeUtil.toNotNullString(RegexUtil.getValueByRegex(dataOptions, regex)).trim();
        System.out.println(cacheName);
    }

}
